'+
'';
return html;
}
var reviewIndex;
function reviewsio_renderContent(userVaribles, ajaxData){
var html = '';
reviewIndex = 0;
for(var review in ajaxData.reviews){
if(!isNaN(review)){
html += reviewsio_renderReview(ajaxData.reviews[review],userVaribles);
}
}
return html;
}
function reviewsio_renderReview(review, userVaribles ){
var numberedDatesSetting = userVaribles.NUMERED_DATES;
if(numberedDatesSetting == 'true') {
var d = new Date(review.date_created);
function pad(s) { return (s < 10) ? '0' + s : s; };
var formattedDate = [pad(d.getDate()), pad(d.getMonth()+1), d.getFullYear()].join('.');
}
//If reviwer name is anonymous, use the translation config
if(review.reviewer && review.reviewer.first_name != null && review.reviewer.first_name.toLowerCase() == 'anonymous') {
review.reviewer.first_name = userVaribles.TRANSLATE_ANONYMOUS;
}
if(userVaribles.THIRD_PARTY){
var iconName = review.third_party.name.replace(" ", "-").toLowerCase();;
var iconUrl = 'https://assets.reviews.io/img/all-global-assets/platform-logos/icon-'+iconName+'--black.svg';
if(userVaribles.DARKMODE == 'true'){
iconUrl = 'https://assets.reviews.io/img/all-global-assets/platform-logos/icon-'+iconName+'--white.svg';
}
}
else{
if(reviewIndex == 0){
var html=
'';
reviewIndex ++;
return html;
}
function reviewsio_renderRating(rating, userVaribles){
var html = '';
for(var i=1;i<=5;i++){
if(i <= rating){
html += '
';
} else if(i - 0.25 <= rating) {
html += '
';
} else if(i - 0.5 <= rating) {
html += '
';
} else if(i - 0.75 <= rating) {
html += '
';
}
else {
html += '
';
}
}
return html;
}
function reviewsio_renderPopups(userVaribles, ajaxData){
var html = '
';
return html;
}
function reviewsio_generateImagePopup( review, userVaribles){
var html = ""+
'';
return html;
}
function reviewsio_generatePopup(review,userVaribles){
var html = ""+
'';
return html;
}
window.onload = function () {
setTimeout(function(){
if ('ResizeObserver' in self) {
var ro = new ResizeObserver(function(entries) {
var defaultBreakpoints = {'R-XSM': 380, 'R-SM': 480, 'R-MD': 640, 'R-LG': 767, 'R-XLG': 992, 'R-XXLG': 1140, 'R-XXXLG': 1440,'R-XXXXLG': 1919};
entries.forEach(function(entry) {
var breakpoints = entry.target.dataset.breakpoints ?
JSON.parse(entry.target.dataset.breakpoints) :
defaultBreakpoints;
Object.keys(breakpoints).forEach(function(breakpoint) {
var minWidth = breakpoints[breakpoint];
if (entry.contentRect.width <= minWidth) {
if(breakpoint != 0){
entry.target.classList.remove(breakpoints[breakpoint-1])
}
entry.target.classList.add(breakpoint)
}
else {
entry.target.classList.remove(breakpoint);
}
});
});
});
var elements = document.querySelectorAll('[r-data-observe-resizes]');
for (var element, i = 0; element = elements[i]; i++) {
ro.observe(element);
}
}
}, 301);
}
function reviewsio_resizer(){
if ('ResizeObserver' in self) {
var ro = new ResizeObserver(function(entries) {
var defaultBreakpoints = {'R-XSM': 380, 'R-SM': 480, 'R-MD': 640, 'R-LG': 767, 'R-XLG': 992, 'R-XXLG': 1140, 'R-XXXLG': 1440,'R-XXXXLG': 1919};
entries.forEach(function(entry) {
var breakpoints = entry.target.dataset.breakpoints ?
JSON.parse(entry.target.dataset.breakpoints) :
defaultBreakpoints;
Object.keys(breakpoints).forEach(function(breakpoint) {
var minWidth = breakpoints[breakpoint];
if (entry.contentRect.width <= minWidth) {
if(breakpoint != 0){
entry.target.classList.remove(breakpoints[breakpoint-1])
}
entry.target.classList.add(breakpoint)
}
else {
entry.target.classList.remove(breakpoint);
}
});
});
});
var elements = document.querySelectorAll('[r-data-observe-resizes]');
for (var element, i = 0; element = elements[i]; i++) {
ro.observe(element);
}
}
}
function reviewsio_shareLink(store, type, id) {
id = id.split('-');
var link = '';
switch (id[0]) {
case 'product_review':
if(type == 'twitter'){
link = 'https://twitter.com/intent/tweet?url=https://media.reviews.co.uk/product-snippet/' + id[1];
} else if(type =='facebook') {
link = 'https://www.facebook.com/dialog/share?app_id=2171894026402210&display=popup&href=https://media.reviews.co.uk/product-snippet/' + id[1];
} else if (type == 'email') {
return 'mailto:?subject=Check out this review&body=https://media.reviews.co.uk/product-snippet/' + id[1];
}
break;
case 'store_review':
if(type == 'twitter'){
link = 'https://twitter.com/intent/tweet?url=https://www.reviews.io/company-review/store/'+ store +'/' + id[1];
} else if(type =='facebook') {
link = 'https://www.facebook.com/dialog/share?app_id=2171894026402210&display=popup&href=https://www.reviews.io/company-review/store/'+ store +'/' + id[1];
} else if (type == 'email') {
return 'mailto:?subject=Check out this review&body=https://www.reviews.io/company-review/store/'+ store +'/' + id[1];
}
break;
}
if(link) {
window.open(link,'targetWindow','toolbar=no,location=0,status=no,menubar=no,scrollbars=yes,resizable=yes,width=640,height=480');
}
}
function reviewsio_generatePopupReplyContent(responses){
if (typeof responses === 'undefined' || responses.length < 1) {
return '';
}
const replyHTML = [];
responses.forEach((res)=>{
if (res.comments && !res.private){
let responseItem = '';
responseItem += '
';
replyHTML.push(responseItem);
}
});
if (replyHTML.length > 0){
return replyHTML.join('');
}
}
function elementOrAncestorHasClass(element, className) {
if (!element || element.length === 0) {
return false;
}
var parent = element;
do {
if (parent === document) {
break;
}
if (parent.className.indexOf(className) >= 0) {
return true;
}
} while (parent = parent.parentNode);
return false;
}
function reviewsio_hasVoted(id) {
if(localStorage.getItem(id+'/helpful')) {
return localStorage.getItem(id+'/helpful');
} else {
return false;
}
}
function reviewsio_vote(store, id, vote, existingVoteCount,string){
var idParts = id.split('-');
if (!localStorage.getItem(id+'/helpful') && vote){
localStorage.setItem(id+'/helpful', 'up');
var elm = document.getElementById('vote_notice-'+id);
var optsElm = document.getElementById('vote_options-'+id);
elm.innerHTML = reviewsio_getVotedHtml('up',string);
optsElm.style.display = 'none';
switch (idParts[0]) {
case 'store_review':
var url = userVaribles.api + '/merchant/vote?store='+ store +'&review_id='+ idParts[1];
break;
case 'product_review':
var url = userVaribles.api + '/product/vote?store='+ store +'&product_review_id='+ idParts[1];
break;
}
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onload = function() {
if (xhr.status === 200) {
ajaxData = JSON.parse(xhr.responseText);
if(ajaxData.success == true) {
if(existingVoteCount > 0) {
var countElm = document.getElementById('vote_count-'+id);
countElm.innerHTML = ajaxData.count;
} else {
var countElm = document.getElementById('vote_up_container-'+id);
countElm.innerHTML = reviewsio_getVoteCountHtml(id, ajaxData.count);
}
}
} else {
}
};
xhr.send();
}
else if(!localStorage.getItem(id+'/helpful') && !vote) {
localStorage.setItem(id+'/helpful', 'down');
var elm = document.getElementById('vote_notice-'+id);
var optsElm = document.getElementById('vote_options-'+id);
elm.innerHTML = reviewsio_getVotedHtml('down',string);
optsElm.style.display = 'none';
}
}
function reviewsio_getVoteCountHtml(storeReviewId, votes) {
var html = '
'+
'
'+
''+
'
'+
'
'+
''+votes+" "+ (votes > 1 ? userVaribles.translations.helpful_multiple : userVaribles.translations.helpful_single) +
' '+
'
';
return html;
}
function reviewsio_decodeJsonStringArray(a) {
if(a.indexOf('["') !== -1) {
try {
var attributeAnswer = JSON.parse(a);
return attributeAnswer.join(', ');
} catch (e) {
return a;
}
} else {
return a;
}
}
function reviewsio_getVotedHtml(vote,string) {
var html = '';
if(vote == 'up' || vote == true) {
var html = '
' +
'
' +
'
' +
'
' +
(string ? string : userVaribles.translations.up_voted) +
'
' +
'
'+
'
';
} else if(vote == 'down') {
var html = '
' +
'
' +
'
' +
'
' +
(string ? string : userVaribles.translations.down_voted) +
'
' +
'
'+
'
';
}
return html;
}
function reviewsio_renderAllCenteredSelects(attributes) {
var html = '';
for (var i = 0; i < attributes.length; i++) {
if(attributes[i].attribute && attributes[i].attribute.type && attributes[i].attribute.type == 'centered-range') {
html += '
' +
'
' +
(attributes[i].attribute.public_label.length > 0 ? attributes[i].attribute.public_label : attributes[i].attribute.question) +
'
' +
'
'+
'
';
var sliderLabels = reviewsio_getSliderLabels(attributes[i].attribute.data);
for (var sliderIndex = 0; sliderIndex < sliderLabels.length; sliderIndex++) {
if(sliderLabels[sliderIndex] == null) {
continue;
}
html += '
' +
'
' +
(sliderLabels[sliderIndex]) +
'
' +
'
';
}
html += '
'+
'
';
}
}
return html;
}
function reviewio_getRatingPercentile(rating) {
rating = (parseInt(rating) / 5) * 5;
return Math.round((100/4)*rating) - 25;
}
function reviewsio_getSliderLabels(labels) {
try {
var parsedlabels = JSON.parse(labels);
return parsedlabels;
} catch (e) {
return labels;
}
}
function reviewsio_escapeHtmlEntities(review_comments){
if (!review_comments) return review_comments;
return review_comments.replace(//g, '');
}
function language(lan){
var translations;
switch(lan){
case 'fr':
translations = {
rating: "moyenne",
stars: "étoiles",
share: "Partager",
read_more: "Lire plus de commentaires sur REVIEWS.io",
close: "Proche",
share_facebook: "Partager sur Facebook",
share_twitter: "Partager sur Twitter",
share_email: "Partager par e-mail",
reviews: "commentaires",
excellent: "Excellent",
good: "Bien",
normal: "Ordinaire",
anonymous: "Anonyme",
verified_customer: "Client Vérifié",
based_on: "basé sur",
would_recommend: "Je recommande ce produit",
helpful_multiple: "les gens ont trouvé cet avis utile.",
helpful_single: "personne a trouvé ce commentaire utile.",
up_voted: "Vous avez noté cet avis comme utile.",
down_voted: 'Vous avez rejeté cet avis.',
was_helpful:'Cet avis vous a-t-il été utile?',
yes:'Oui',
no:'Non',
minute_ago:'Il y a minute',
minutes_ago:'Il y a minutes',
hour_ago:'Il ya a heure',
hours_ago:'Il y a heures',
day_ago:'Il y a jour',
days_ago:'Il y a jours',
week_ago:'Il y a semaine',
weeks_ago:'Il y a semaines',
month_ago:'Il y a mois',
months_ago:'Il y a mois',
year_ago: 'il y a an',
years_ago:'il y a ans',
source: 'La source',
};
break;
case 'de':
translations = {
rating: "Rating",
stars: "Sterne",
reviews: "Bewertungen",
share: "Teilen",
read_more: "Lesen Sie weitere Bewertungen auf REVIEWS.io",
close: "Schließen",
share_facebook: "Auf Facebook teilen",
share_twitter: "Auf Twitter teilen",
share_email: "Per E-Mail teilen",
excellent: "Hervorragend",
good: "Gut",
normal: "Akzeptabel",
anonymous: "Anonym",
verified_customer: "Verifizierter Kunde",
based_on: "basierend auf",
would_recommend: "Ich empfehle dieses Produkt",
helpful_multiple: "Personen fanden diese Bewertung hilfreich.",
helpful_single: "Person fand diese Bewertung hilfreich.",
up_voted: "Sie haben diese Bewertung als hilfreich markiert.",
down_voted: 'Sie haben diese Bewertung als nicht hilfreich markiert.',
was_helpful: 'War diese Bewertung hilfreich?',
yes:'Ja',
no:'Nein',
minute_ago:'vor einer Minute',
minutes_ago:'vor Minuten',
hour_ago:'vor einer Stunde',
hours_ago:'vor Stunden',
day_ago:'vor einem Tag',
days_ago:'vor Tagen',
week_ago:'vor einer Woche',
weeks_ago:'vor Wochen',
month_ago:'vor einem Monat',
months_ago:'vor Monaten',
year_ago: 'vor einem Jahr',
years_ago:'vor Jahren',
source: 'Quelle',
};
break;
case 'no':
translations = {
rating: "Anmeldelse",
reviews: "Vurderinger",
excellent: "Glimrende",
good: "Bra",
normal: "Ok",
anonymous: "Anonym",
verified_customer: "Verifisert kunde",
based_on: "basert på",
would_recommend: "Jeg anbefaler dette produktet",
helpful_multiple: "personer synes denne vurderingen var nyttig.",
helpful_single: "person synes denne vurderingen var nyttig.",
up_voted: "Du har markert anmeldelsen som nyttig.",
down_voted: 'Du har markert anmeldelsen som unyttig.',
was_helpful: 'Var denne anmeldelsen nyttig?',
yes:'Ja',
no:'Nei',
minute_ago:'minutt siden',
minutes_ago:'minutter siden',
hour_ago:'time siden',
hours_ago:'timer siden',
day_ago:'dag siden',
days_ago:'dager siden',
week_ago:'uke siden',
weeks_ago:'uker siden',
month_ago:'måned siden',
months_ago:'måneder siden',
};
break;
case 'es':
translations = {
rating: 'calificación',
reviews: 'reseñas',
share: "Cuota",
read_more: "Lea más reseñas en REVIEWS.io",
close: "Cerrar",
share_facebook: "Compartir en Facebook",
share_twitter: "Compartir en Twitter",
share_email: "Compartir via correo electrónico",
stars: "estrellas",
excellent: 'Excelente',
good: 'Bien',
normal: 'Normal',
anonymous: 'anónimo',
verified_customer: 'Cliente Verificado',
based_on: 'basado en',
would_recommend: 'recomendaría',
helpful_multiple: 'útil múltiple',
helpful_single: 'útil sólo',
up_voted: 'votado',
down_voted: 'votado bajo',
was_helpful: 'fue útil',
yes: 'si',
no: 'no',
minute_ago: 'hace un minuto',
minutes_ago: 'hace minutos',
hour_ago: 'hace una hora',
hours_ago: 'horas atras',
day_ago: 'hace un dia',
days_ago: 'hace días',
week_ago: 'hace una semana',
weeks_ago: 'hace semanas',
month_ago: 'hace un mes',
months_ago: 'Hace meses',
year_ago: 'Year ago',
years_ago:'Years ago',
source: 'origen',
};
break;
case "it":
translations = {
rating: "Valutazioni",
stars: "stelle",
share: "Condividere",
read_more: "Leggi altre recensioni su REVIEWS.io",
close: "Chiudere",
share_facebook: "Condividi su Facebook",
share_twitter: " Condividi su Twitter",
share_email: "Condividi via e-mail",
reviews: "Recensioni",
excellent: "Eccezionale",
good: "Bene",
normal: "Ordinario",
anonymous: "Anonimo",
verified_customer: "Cliente verificato",
based_on: "basato su",
would_recommend: "Consiglierei questo prodotto",
helpful_multiple: "persone hanno trovato utile questa recensione.",
helpful_single: "persone hanno trovato utile questa recensione.",
up_voted: "Hai valutato questa recensione come utile.",
down_voted: "Hai valutato questa recensione come inutile.",
was_helpful: "Questa recensione è stata utile per te?",
yes: "Sì",
no: "No",
minute_ago: "minuto fa",
minutes_ago: "minuti fa",
hour_ago: "ora fa",
hours_ago: "ore fa",
day_ago: "giorno fa",
days_ago: "giorni fa",
week_ago: "settimana fa",
weeks_ago: "settimane fa",
month_ago: "mesa fa",
months_ago: "mesi fa",
year_ago: "ano fa",
years_ago: "ani fa",
source: "Fonte",
};
break;
case "nl":
translations = {
rating: "Beoordeling",
reviews: "Recensies",
share: "Delen",
read_more: "Lees meer recensies op REVIEWS.io",
close: "Sluiten",
share_facebook: "Delen op Facebook",
share_twitter: "Delen op Twitter",
share_email: "Delen via e-mail",
stars: "sterren",
excellent: "Uitstekend",
good: "Goed",
normal: "Normaal",
anonymous: "Anoniem",
verified_customer: "Geverifieerde klant",
based_on: "Gebaseerd op",
would_recommend: "Zou dit product aanbevelen",
helpful_multiple: "mensen hebben deze recensie gevonden nuttig.",
helpful_single: "mensen hebben deze recensie gevonden nuttig.",
up_voted: "Je hebt deze recensie als nuttig gegeven.",
down_voted: "Je hebt deze recensie als niet nuttig gegeven.",
was_helpful: "Was deze recensie nuttig?",
yes: "Ja",
no: "Nee",
minute_ago: "minuut geleden",
minutes_ago: "minuten geleden",
hour_ago: "uur geleden",
hours_ago: "uren geleden",
day_ago: "dag geleden",
days_ago: "dagen geleden",
week_ago: "week geleden",
weeks_ago: "weken geleden",
month_ago: "maand geleden",
months_ago: "maanden geleden",
year_ago: "jaar geleden",
years_ago: "jaren geleden",
source: "Bron",
};
break;
case "sv":
translations = {
rating: "Betyg",
reviews: "Recensioner",
share: "Dela",
read_more: "Läs fler recensioner på REVIEWS.io",
close: "Stäng",
share_facebook: "Dela på Facebook",
share_twitter: "Dela på Twitter",
share_email: "Dela via e-mail",
stars: "stjärnor",
excellent: "Utmärkt",
good: "Bra",
normal: "Normal",
anonymous: "Anonym",
verified_customer: "Verifierad kund",
based_on: "Baserat på",
would_recommend: "Jag skulle rekommendera detta produkt",
helpful_multiple: "personer har hittat denna recension användbar.",
helpful_single: "personer har hittat denna recension användbar.",
up_voted: "Du har röstat på denna recension som användbar.",
down_voted: "Du har röstat på denna recension som inte användbar.",
was_helpful: "Var denna recension användbar?",
yes: "Ja",
no: "Nej",
minute_ago: "minut sedan",
minutes_ago: "minuter sedan",
hour_ago: "timme sedan",
hours_ago: "timmar sedan",
day_ago: "dag sedan",
days_ago: "dagar sedan",
week_ago: "vecka sedan",
weeks_ago: "veckor sedan",
month_ago: "månad sedan",
months_ago: "månader sedan",
year_ago: "år sedan",
years_ago: "år sedan",
source: "Källa",
};
break;
case "pt":
translations = {
rating: "média",
reviews: "avaliações",
share: "Compartilhar",
close: "Fechar",
read_more: "Leia mais avaliações em REVIEWS.io",
share_facebook: "Compartilhar no Facebook",
share_twitter: "Compartilhar no Twitter",
share_email: "Compartilhar via Email",
stars: "Estrelas",
excellent: "Excelente",
good: "Bom",
normal: "Normal",
anonymous: "Anônimo",
verified_customer: "Cliente Verificado",
verified_subscriber: "Assinante Verificado",
based_on: "com base em",
would_recommend: "Eu recomendo este produto",
helpful_multiple: "pessoas acharam esta avaliação útil.",
helpful_single: "pessoa achou esta avaliação útil.",
up_voted: 'Você votou positivamente nesta avaliação como útil.',
down_voted: 'Você votou negativamente nesta avaliação.',
was_helpful: 'Esta avaliação foi útil?',
yes: 'Sim',
no: 'Não',
minute_ago: 'minuto atrás',
minutes_ago: 'minutos atrás',
hour_ago: 'hora atrás',
hours_ago: 'horas atrás',
day_ago: 'dia atrás',
days_ago: 'dias atrás',
week_ago: 'semana atrás',
weeks_ago: 'semanas atrás',
month_ago: 'mês atrás',
months_ago: 'meses atrás',
year_ago: 'ano atrás',
years_ago: 'anos atrás',
source: 'Fonte',
};
break;
default:
translations = {
rating: "average",
reviews: "reviews",
share: "Share",
close: "Close",
read_more: "Read more reviews on REVIEWS.io",
share_facebook: "Share on Facebook",
share_twitter: "Share on Twitter",
share_email: "Share via Email",
stars: "Stars",
excellent: "Excellent",
good: "Good",
normal: "Normal",
anonymous: "Anonymous",
verified_customer: "Verified Customer",
verified_subscriber: "Verified Subscriber",
based_on: "based on",
would_recommend: "I recommend this product",
helpful_multiple: "people found this review helpful.",
helpful_single: "person found this review helpful.",
up_voted: 'You've upvoted this review as helpful.',
down_voted: 'You've downvoted this review.',
was_helpful:'Was this review helpful?',
yes: 'Yes',
no: 'No',
minute_ago:'minute ago',
minutes_ago:'minutes ago',
hour_ago:'hour ago',
hours_ago:'hours ago',
day_ago:'day ago',
days_ago:'days ago',
week_ago:'week ago',
weeks_ago:'weeks ago',
month_ago:'month ago',
months_ago:'months ago',
year_ago: 'year ago',
years_ago:'years ago',
source: 'Source',
};
break;
}
return translations;
}